home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / gnu / gnulib / sipp / srgp / src / srgp_mar.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-01  |  3.6 KB  |  131 lines

  1. #include "HEADERS.h"
  2. #include "srgplocal.h"
  3.  
  4. #ifdef THINK_C
  5. static Rect r;
  6. #endif
  7.  
  8. int srgp__marker_radius;
  9.  
  10. #ifdef GRX
  11. typedef void (*grx2coordfunc)(int,int,long);
  12. typedef void (*grx3coordfunc)(int,int,int,long);
  13. typedef void (*grx4coordfunc)(int,int,int,int,long);
  14. #endif
  15.  
  16. void SRGP__drawSquareMarker (int x, int y)
  17. {
  18. #ifdef X11
  19.    XDrawRectangle
  20.       (srgpx__display,
  21.        srgp__curActiveCanvasSpec.drawable.xid,
  22.        srgp__curActiveCanvasSpec.gc_frame,
  23.        x-srgp__marker_radius, FIXED(y)-srgp__marker_radius,
  24.        srgp__curActiveCanvasSpec.attributes.marker_size,
  25.        srgp__curActiveCanvasSpec.attributes.marker_size);
  26. #endif
  27. #ifdef THINK_C
  28.    SetRect (&r, x-srgp__marker_radius, FIXED(y)-srgp__marker_radius,
  29.                 x+srgp__marker_radius, FIXED(y)+srgp__marker_radius);
  30.    FrameRect (&r);
  31. #endif
  32. #ifdef GRX
  33.    {
  34.         static grx4coordfunc table[] = {
  35.             (grx4coordfunc)GrBox,
  36.             (grx4coordfunc)GrCustomBox,
  37.             (grx4coordfunc)GrPatternedBox
  38.         };
  39.  
  40.         (*(table[srgp__curActiveCanvasSpec.grx_pen_style]))(
  41.             x-srgp__marker_radius, FIXED(y)-srgp__marker_radius,
  42.             x+srgp__marker_radius, FIXED(y)+srgp__marker_radius,
  43.             srgp__curActiveCanvasSpec.grx_pen_data.val
  44.         );
  45.    }
  46. #endif
  47. }
  48.  
  49. void SRGP__drawCircleMarker (int x, int y)
  50. {
  51. #ifdef X11
  52.    XDrawArc
  53.       (srgpx__display,
  54.        srgp__curActiveCanvasSpec.drawable.xid,
  55.        srgp__curActiveCanvasSpec.gc_frame,
  56.        x-srgp__marker_radius, FIXED(y)-srgp__marker_radius,
  57.        srgp__curActiveCanvasSpec.attributes.marker_size,
  58.        srgp__curActiveCanvasSpec.attributes.marker_size,
  59.        0, 23040);  /* anglestart=0; anglesweep=360 */
  60. #endif
  61. #ifdef THINK_C
  62.    SetRect (&r, x-srgp__marker_radius, FIXED(y)-srgp__marker_radius,
  63.                 x+srgp__marker_radius, FIXED(y)+srgp__marker_radius);
  64.    FrameOval (&r);
  65. #endif
  66. #ifdef GRX
  67.    {
  68.         static grx3coordfunc table[] = {
  69.             (grx3coordfunc)GrCircle,
  70.             (grx3coordfunc)GrCustomCircle,
  71.             (grx3coordfunc)GrPatternedCircle
  72.         };
  73.  
  74.         (*(table[srgp__curActiveCanvasSpec.grx_pen_style]))(
  75.             x,FIXED(y),
  76.             srgp__marker_radius,
  77.             srgp__curActiveCanvasSpec.grx_pen_data.val
  78.         );
  79.    }
  80. #endif
  81. }
  82.  
  83. void SRGP__drawXMarker (int x, int y)
  84. {
  85.    int lx, rx, ty, by;  /* IN LOW-LEVEL COORD SYS */
  86.  
  87.    lx = x - (srgp__marker_radius>>1);
  88.    rx = lx + srgp__curActiveCanvasSpec.attributes.marker_size;
  89.    ty = FIXED(y) - (srgp__marker_radius>>1);
  90.    by = ty + srgp__curActiveCanvasSpec.attributes.marker_size;
  91.  
  92. #ifdef X11
  93.    XDrawLine
  94.       (srgpx__display,
  95.        srgp__curActiveCanvasSpec.drawable.xid,
  96.        srgp__curActiveCanvasSpec.gc_frame,
  97.        lx,ty, rx,by);
  98.    XDrawLine
  99.       (srgpx__display,
  100.        srgp__curActiveCanvasSpec.drawable.xid,
  101.        srgp__curActiveCanvasSpec.gc_frame,
  102.        lx,by, rx,ty);
  103. #endif
  104.  
  105. #ifdef THINK_C
  106.         MoveTo (lx,ty);
  107.         LineTo (rx,by);
  108.         MoveTo (lx,by);
  109.         LineTo (rx,ty);
  110. #endif
  111. #ifdef GRX
  112.    {
  113.         static grx4coordfunc table[] = {
  114.             (grx4coordfunc)GrLine,
  115.             (grx4coordfunc)GrCustomLine,
  116.             (grx4coordfunc)GrPatternedLine
  117.         };
  118.  
  119.         (*(table[srgp__curActiveCanvasSpec.grx_pen_style]))(
  120.             lx,ty, rx,by,
  121.             srgp__curActiveCanvasSpec.grx_pen_data.val
  122.         );
  123.         (*(table[srgp__curActiveCanvasSpec.grx_pen_style]))(
  124.             lx,by, rx,ty,
  125.             srgp__curActiveCanvasSpec.grx_pen_data.val
  126.         );
  127.    }
  128. #endif
  129. }
  130.  
  131.